你走进机房,发现交换机所有端口指示灯同步狂闪,用户纷纷抱怨网络卡成PPT,Ping网关断断续续,甚至交换机CPU飙升到100%、远程登录卡死——这就是典型的广播风暴(Broadcast Storm),其本质通常是二层环路(Layer 2 Loop)所致。
核心原理:当网络中存在物理环路且未启用生成树协议(STP/RSTP/MSTP)时,广播帧(目的MAC为 ff:ff:ff:ff:ff:ff)会在环路中被无限循环复制。交换机收到广播帧后向所有端口(除接收端口外)泛洪,环路导致这些帧不断绕圈,短时间内耗尽所有带宽和CPU资源,导致全网瘫痪。

症状 | 具体表现 | 危险等级 |
网络极慢或中断 | 用户普遍反映上网卡顿、丢包严重、网页打不开 | 高 |
CPU/内存异常 | 交换机CPU占用率持续接近100%,远程管理卡死 | 高 |
端口指示灯异常 | 所有端口同步、高频、规律性狂闪(非独立闪烁) | 中 |
广播包暴增 | 广播/组播/未知单播帧计数急剧增长,接近线速 | 中 |
关键识别点:如果所有端口指示灯呈现"同步狂闪"(而非各自独立闪烁),基本可以确认是广播风暴——因为广播帧会在所有端口同时洪泛。
适用场景:非网管交换机、紧急止血、无法登录设备时。
核心思路:找一台电脑持续Ping网关,然后一根根拔线,观察Ping是否恢复。
优化策略——二分法拔线:
1. 定位起始点:先去"症状最重"的接入交换机。如果核心也闪,从核心开始。
2. 分清上下游:
上联口(Uplink):插光纤/网线,往核心/汇聚走
下联口(Access):往用户/AP/电话/下挂小交换机走
先拔下联,再拔上联——80%的风暴来自下挂傻瓜交换机或用户私接环路,20%来自上联。
3. 分批对半拔:
下联24口,先拔1-12口
灯还狂闪 → 风暴在13-24,保留13-24,1-12插回
灯静了 → 风暴在1-12,再对半1-6/7-12
3-4轮即可锁到具体端口
4. 单拔上联验证:如果只有1-2根上联,先拔上联。拔了上联整台还狂闪 → 风暴在本机下联;拔了上联灯全静 → 风暴从上游来,去上一台交换机重复操作。
5. 追到源头:锁到单口后,根据配线架追到墙插/AP/摄像头。常见元凶:
用户桌面私接5口傻瓜交换机,两根线一头插墙、一头插同一个小交换机的两个口
施工把两根网线短接
POE供电器接错
临时恢复:源头拔掉后,本机所有口灯变回"零星慢闪",用户网络瞬间恢复。此时把正常口一个个插回,确认不会重新引爆。
适用场景:可登录的网管交换机(华为/华三/Cisco)。
# Cisco
show interfaces counters
show interfaces counters errors
show interfaces | inc broadcast
# 华为
display interface brief
display counters error
display counters inbound interface
# 华三
display counters inbound interface
关键观察点:正常广播占比应极低(<1%)。如果某个口的broadcast/multicast速率爆满、接近线速,风暴坐实。同时检查是否有大量CRC、runts、giants等错误帧——环路会导致数据帧被反复复制损坏。
# 华为
display cpu-usage
display mac-address
display mac-address mac-move # MAC漂移检测
# Cisco
show processes cpu
show mac address-table
关键观察点:
CPU高说明控制面受冲击(ARP风暴/STP攻击)
同一MAC地址在短时间内频繁出现在不同端口 → MAC地址漂移,是环路的铁证
# Cisco
show spanning-tree summary
show spanning-tree vlan 10
show spanning-tree detail
# 华为
display stp brief
display stp abnormal-interface
display stp topology-change
display stp tc-bpdu statistic
三个关键检查点:
1. 根桥身份:确认根桥是否符合设计预期,意外根桥选举可能导致次优路径甚至环路
2. 端口状态:如果所有端口都是Forwarding,没有任何Blocking,则STP可能未生效或配置错误,环路风险极高
3. 拓扑变更计数:Topology Changes持续快速增加,意味着网络拓扑不稳定,存在链路翻动或临时环路
# 华为
display logbuffer # 查看日志缓存
display loopback-detection # 环路检测状态
# 华三
display stp down-port # 查看因STP down掉的端口
display stp tc # TC BPDU收发情况
display stp bpdu-statistics # BPDU统计
华为设备若端口因环路检测(收到自己发出的BPDU)被阻塞,display stp abnormal-interface 会显示 Reason: loop-detected。
适用场景:需要精确定位环路源MAC、分析风暴类型。
1. 接入交换机任意端口接电脑,用Wireshark抓包
2. 过滤广播包:eth.addr == ff:ff:ff:ff:ff:ff 或 broadcast
3. 观察特征:
短时间内大量重复的广播帧(ARP/DHCP请求)
同一数据包不停绕回来(TTL递减或不变都有问题)
源MAC地址不断变化或出现相同帧的递增序列
IO Graphs中广播流量呈现持续高峰(接近满格)
4. 锁定源MAC:通过统计功能查看哪个源MAC发送广播包最频繁,顺藤摸瓜找到问题设备
登录受影响的交换机,shutdown流量异常最高的端口:
# Cisco
interface gigabitEthernet 1/0/24
shutdown
# 华为
interface GigabitEthernet 0/0/24
shutdown
观察网络是否迅速恢复。这是验证环路存在的最快方法。
如果无法立即定位,可拔掉部分交换机上联线,逐步缩小范围,定位到具体区域。
若完全无法定位,重启核心交换机可临时清除错误MAC表项,恢复网络。但治标不治本,重启后风暴可能复现。
场景 | 原因 | 解决方案 |
用户用网线直连两个墙口 | 形成物理环路 | 启用Port Security,封掉多余墙口 |
两台交换机用两根网线互联 | 冗余链路未配STP | 启用STP阻塞冗余端口,或配置链路聚合 |
私接家用路由器WAN/LAN口接反 | 错误回环到局域网 | 启用BPDU Guard,自动禁用该端口 |
傻瓜交换机下挂环路 | 用户私接小交换机自环 | 接入层启用环路检测+边缘端口 |
网线水晶头故障/网卡损坏 | 故障设备疯狂发包 | 更换网线或网卡 |
确保在连接终端(PC、服务器、AP)的端口上启用PortFast和BPDU Guard:
# Cisco
interface gigabitEthernet 1/0/1
spanning-tree portfast
spanning-tree bpduguard enable
# 华为
interface GigabitEthernet 0/0/1
stp edged-port enable
stp bpdu-protection
BPDU Guard是防止环路最有效的单点配置之一。在所有边缘Access端口强制启用,收到BPDU后端口直接error-down,拦截大多数意外环路。
确认是否有非授权网线将同一台交换机的两个端口短接
Access端口确认属于正确VLAN
Trunk端口确认允许VLAN列表正确,避免Native VLAN不匹配
1. 纠正错误后,重新启用(no shutdown)之前关闭的端口
2. 再次检查:
show interfaces counters / display interface brief → 广播流量恢复正常
show spanning-tree vlan xx / display stp brief → STP拓扑稳定
show mac address-table / display mac-address → MAC地址表不再漂移
3. 逐步恢复:将拔掉的正常口一个个插回,确认不会重新引爆
预防措施 | 作用 | 配置要点 |
全面部署RSTP/MSTP | 秒级收敛,替代传统STP | stp mode rstp / spanning-tree mode rapid-pvst |
启用BPDU Guard | 防止边缘端口引发环路 | 所有Access边缘端口强制启用 |
启用Root Guard | 防止低优先级设备成为根桥 | 不应成为根桥的上行端口配置 |
启用环路检测 | 单机环路检测双重保险 | loopback-detection enable |
流量抑制/风暴控制 | 限制广播/组播/未知单播速率 | broadcast-suppression 30 / storm-control broadcast |
规范布线与管理 | 从源头杜绝物理环路 | 清晰线路标签、逻辑拓扑文档、禁用闲置端口 |
华为流量抑制配置示例:
interface gigabitethernet 1/0/1
broadcast-suppression 30 # 广播抑制30%
multicast-suppression 30 # 组播抑制30%
unicast-suppression 30 # 未知单播抑制30%
# 或风暴控制(更精细)
storm-control broadcast min-rate 5000 max-rate 8000
storm-control action error-down
storm-control enable trap
部署建议:
STP必须全局开启,禁止两台交换机之间直连两根网线(除非做链路聚合)
部署广播流量监控,广播包占比超10%即告警
办公区墙面网口只保留一个可用,其余用胶带封住或shutdown
避免"交换机串联超过3级"的拓扑,采用星型拓扑
发现故障
↓
所有端口同步狂闪?CPU飙升?Ping丢包?
↓
是 → 确认广播风暴
↓
┌─────────────┬─────────────┬─────────────┐
│ 非网管交换机 │ 网管交换机 │ 任何设备 │
│ 物理拔线法 │ 命令行诊断 │ Wireshark │
│ 二分法定位 │ 流量/MAC/STP│ 抓包锁定 │
└─────────────┴─────────────┴─────────────┘
↓
定位到异常端口/链路
↓
shutdown该端口 → 风暴停止?
↓
是 → 追查物理连线/配置错误/私接设备
↓
修复根因 → no shutdown恢复端口
↓
验证网络正常,加强预防配置
先看现象(端口同步狂闪、CPU爆满)→ 再查流量(广播包暴增)→ 查MAC漂移 → 查STP状态 → 紧急shutdown异常端口 → 排查根因 → 恢复并加强预防。
大多数广播风暴都是物理环路或故障网卡引起的。遇到风暴不要慌,更不要一上来就重启交换机——先拔线看风暴停不停,再查STP,抓包找MAC,分段缩小范围,系统性地解决才是正道。